Repository navigation
Admit independent service SVID roles on Gateway receivers - #16364
Merged
agentydragon merged 5 commits intoNov 14, 2026
Merged
agentydragon merged 5 commits into
agentydragon merged 5 commits into
Conversation
agentydragon
enabled auto-merge (squash)
November 14, 2026 07:09
auto-merge was automatically disabled
November 14, 2026 07:15
Head branch was pushed to by a user without write access
agentydragon-agent
force-pushed
the
agent/service-svid-gateway
branch
from
November 14, 2026 07:15
2450997 to
e370478
Compare
agentydragon-agent
force-pushed
the
agent/service-svid-gateway
branch
from
November 14, 2026 07:38
6bf7dfe to
47574ec
Compare
agentydragon
enabled auto-merge (squash)
November 14, 2026 07:39
Contributor
Visual review for
|
agentydragon
pushed a commit
that referenced
this pull request
Nov 14, 2026
Explicit `ResumeEnvironment` no longer reserves the shared wake budget, for direct Pod-bound and service-SVID operator callers and Identity resume grants. Automatic Dispatcher `RequestWake` alone reserves `ReserveWakeAttempt`; authorization, operator-stop handling, generation tokens and optimistic locking retain their existing behavior. This implements the operator’s 2026-11-14 07:41 UTC decision, “No budget for explicit resume,” recorded in [plan PR #16368](#16368) at `0675c37082`. `TestExplicitResumeDoesNotReserveWakeBudget` exercises both caller paths with exhausted and unavailable budget backends and requires successful resume with zero reservations. `TestEnvironmentServiceServiceRolesStayMethodScoped` checks a real mTLS service operator resume succeeds with zero reservations; the foreign-target Identity grant test also checks zero reservations. Conflict and stale-token tests retain their coverage, with concurrent requests synchronized at the Kubernetes patch boundary rather than inside the budget fake. Automatic wakes remain bounded: `TestAutomaticWakeSharesPolicyBudgetAndReportsRetryFacts` still requires rate limiting with retry facts when exhausted and refusal when the backend is unavailable; Dispatcher’s `TestMixedVersionWakeWritersShareCapAndGenerationDedup` and Store integration tests cover durable shared reservations. Lifecycle SPEC, README and interface comments now distinguish the two paths. Validation: - Changed-file pre-commit and all commit hooks passed (gofumpt applied formatting first). - `bbr test //agentplane/runner_gateway/environments/lifecycle:lifecycle_test //agentplane/runner_gateway/environments:environments_test //agentplane/runner_gateway/dispatcher:store_integration_test //agentplane/system_tests/suites:test_dispatcher --test_output=errors` — all 4 passed ([45ead54e](https://app.buildbuddy.io/invocation/45ead54e-7d63-4603-837d-3ad3e388ce46)); 3 executed, Dispatcher storage integration cached. The full Dispatcher system suite passed in 228.3s and covers queue, automatic wake, delivery and replica behavior. Full current-head GitHub CI pending. Rollout: deploy/pin the Gateway behavior. No settings, manifests, schema or wire contract changes, so no image-before-config ordering applies. Independent of the identity-change fence PR #16373. Rollback: revert the Gateway image pin; explicit resume again uses the existing budget. Retain current Sandbox generations and budget rows. After Flux applies the pin, check explicit resume and automatic queued wake, including normal delivery and wake-budget retry facts. Deliberately leaves out automatic-wake policy or limit changes, settings/manifests, storage ownership or service extraction, Runtime Identity defense, caller-authentication changes, and any new cross-component call. Rebased onto `9a955bd3` after Gateway service SVID admission #16364, preserving its service roles and authentication behavior. Post-rebase focused validation ([0fd41c23](https://app.buildbuddy.io/invocation/0fd41c23-f01e-45ce-9115-6f0652352163)) passed lifecycle, Dispatcher storage (cached), and the full Dispatcher system suite (231.9s), but found the newly landed mTLS service-operator test still asserting an explicit budget reservation. Commit `d63bccb9` changes that assertion to zero reservations while retaining its method-scoped authorization and desired-state checks. The corrected `bbr test //agentplane/runner_gateway/environments:environments_test --test_output=errors` executed and passed ([3fcea46b](https://app.buildbuddy.io/invocation/3fcea46b-f7c8-40f4-bb2d-b4f8d5f0c93a)). Changed-file pre-commit and commit hooks passed. Full current-head CI pending. Latest rebase: head `9f01bc92f168218eb361383b6dd6c58b81224226` is based on `a68e0de510d6ea10184705ab453a69259cb85801`, including service-SVID admission and the system-test root-key renewal correction #16377. The rebase was conflict-free; range-diff showed unchanged patches, and it was published with `--force-with-lease`. GitHub confirms this head. Current-head pre-commit, Nix and artifact/import checks passed; Bazel and visual review are running, with no reported failures as of 2026-11-14 08:29 UTC. The focused RBE results above remain prior-base validation. Fresh `origin/devel` is `6e591f383864ab47d7a9370abb4bd6637f0faee3`; its two additional commits change image pins and a Dispatcher documentation note, and GitHub reports this PR mergeable. ## Questions for Claude None. --------- Co-authored-by: agentydragon-agent <260791330+agentydragon-agent@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add optional exact service-SVID admission to the co-hosted Dispatcher, EnvironmentService, Runtime proxy and Executor. Each receiver has its own grants; Sessions, Environments and Runtime-proxy identities remain movable with the planned binary split. Certificate actors retain separate persisted provenance and wake budgets. Typed delegation uses the effective Identity, never the actor's component grants. Preserve the merged Identity explicit-resume rules and live UID/policy checks.
Stage 3 code and settings only. Deliberately leaves out caller switches, deployment settings, binary extraction, TokenReview and RBAC removal. #16359 has merged, but manifests must not set these keys or certificate paths until these receiver images are pinned. Existing bearer callers continue during the staged rollout; a certificate-bearing request cannot fall back to bearer admission.
Validation: scoped pre-commit passed including complete Gazelle drift. Passed:
bbr test //agentplane/runner_gateway:config_test //agentplane/runner_gateway:test_settings //agentplane/runner_gateway/environments/internal/management:unit_test //agentplane/runner_gateway/internal/gateway:gateway_test //agentplane/runner_gateway/dispatcher:store_integration_test //agentplane/runner_gateway/migrations:test_migrations(invocation9a6c13bb-c9c4-4b5c-b032-a58d46be4baa). After integrating the new Identity lifecycle contract and migration sequencing,bbr test //agentplane/runner_gateway/environments:environments_test //agentplane/runner_gateway/environments/lifecycle:lifecycle_test //agentplane/runner_gateway/migrations:upgrade_integration_testpassed (e05a4154-0a1a-4b50-804a-96e2f3e1682e). Deployment tests all passed in30458d37-c117-4e09-bde2-0f9736b4b92d://agentplane/system_tests/suites:test_dispatcher(278.6s),//agentplane/system_tests/suites/mcp:test_services(341.1s),//agentplane/system_tests/suites/mcp:test_delegation(200.8s), and//cluster/cdk8s:test_generate_manifests(40.3s). Named settings-library build also passed (82a1c289-c244-4d90-b7c2-a59a23e3768e). System overview includes the role boundaries.CI found and corrected two integration gaps: ServiceAccount create receipts now retain the existing
callerencoding for old replicas and orchestration readers, while service actors use independent attribution; the Gateway method helper lives in the shared test fixture so the queue test compiles.bbr test //agentplane/action_service/orchestration_v1:orchestration_v1_test //agentplane/runner_gateway/environments/internal/management:unit_test //agentplane/runner_gateway/environments:environments_test //agentplane/system_tests/suites/mcp:test_actionspassed (a5051868-b8ce-4bcc-9ece-a8e762c55840). Fresh-base checks also passed in22bcde0e-da5e-4fbd-93b0-289a08fa985a://agentplane/runner_gateway/internal/gateway:queue_runner_integration_test(32.9s),//agentplane/runner_gateway/internal/gateway:gateway_test(22.2s), and//agentplane/runner_gateway/dispatcher:store_integration_test(70.0s).Rollback: revert the receiver change before any caller cutover, roll back its image pin, and confirm existing bearer clients and Dispatcher delivery recover. The new migration is additive; retain its columns/table during rollback. After future service-attributed writes begin, do not roll back without accounting for those rows, since old receivers cannot use their new attribution. This PR enables no production service callers.
Questions for Claude
None.